<template>
	<view class="page">
		<!-- 页面头部内容开始 -->
		<vk-data-page-header
			:title="page.title"
			:show-back="page.showBack"
			@back="pageBack"
		></vk-data-page-header>
		<!-- 页面头部内容结束 -->
		<view class="page-body" v-if="page.complete" v-loading="form1.props.loading" style="padding-bottom: 40px;">
			<!-- 页面主体内容开始 -->
			<vk-data-form
				ref="form1"
				v-model="form1.data"
				:rules="form1.props.rules"
				:action="form1.props.action"
				:form-type="form1.props.formType"
				:columns='form1.props.columns'
				:loading.sync="form1.props.loading"
				:labelWidth="form1.props.labelWidth"
				:footer-show="false"
				:success-msg="form1.props.successMsg"
				:before-action="form1.props.beforeAction"
				@success="formSuccess"
			>
				<!-- <template v-slot:login_mode="{ form, keyName, column }">
					<view>
						<view v-for="(item,index) in column.data" :key="index">
							<el-radio v-model="form[keyName]" :label="item.value">{{ item.label }}</el-radio>
						</view>
					</view>
				</template>
				<template v-slot:login_mode="{ form, keyName, column }">
					<view style="display: flex;flex-direction: column;">
						<el-radio v-for="(item,index) in column.data" :key="index" v-model="form[keyName]" :label="item.value" style="margin: 8px 0;">{{ item.label }}</el-radio>
					</view>
				</template> -->
			</vk-data-form>
			<!-- 页面主体内容结束 -->
		</view>
		<view class="page-footer">
			<!-- 页面底部内容开始 -->
			<el-button v-if="page.showBack" plain style="margin-right: 20px;width: 80px;" @click="pageBack" :loading="form1.props.loading">{{ page.cancelText }}</el-button>
			<el-button type="primary" style="width: 80px;" @click="submitForm" :loading="form1.props.loading">{{ page.submitText }}</el-button>
			<!-- 页面底部内容开始 -->
		</view>
		<view class="page-dialog">
			<!-- 页面弹窗内容开始 -->

			<!-- 页面弹窗内容开始 -->
		</view>
	</view>
</template>

<script>
	var that;													// 当前页面对象
	var vk = uni.vk;									// vk实例
	var settingKey = "mp_weixin";
	export default {
		data() {
			// 页面数据变量
			return {
				// init请求返回的数据
				data:{

				},
				page: {
					title: "微信小程序设置",
					submitText: "设置",
					cancelText: "返回",
					showBack: false,
					backPage:"",
					complete: false,
				},
				form1: {
					// 表单请求数据，此处可以设置默认值
					data: {
						share:{
							title:"",
							image:"",
						},
						online_service: false,
						login_mode: 0,
						weixin_login_type: "auto"
					},
					// 表单属性
					props: {
						// 表单请求地址
						action: "admin/business/sys.mch.updateAppSetting",
						// 表单字段显示规则
						columns: [
							// { key: "", title: "基础信息", type: "bar-title" },
							// { key: "domain", title: "服务域名", type: "text", width:400, tips:"需要带http://或https:// 如: https://www.baidu.com" },
							// { key: "path", title: "h5运行目录", type: "text", width:400, tips:"" },
							{ key: "", title: "分享设置", type: "bar-title" },
							{ key: "share", title: "默认分享", type: "object", showLabel:false,
								columns:[
									{ key: "title", title: "分享标题", type: "text", width:400, tips:"一个好的标题可以吸引用户点进来" },
									{ key: "image", title: "分享封面", type: "file-select", fileType: "image", tips:"一个好看的封面可以吸引用户点进来，建议尺寸：1000*800（5:4）", multiple: false, multipleLimit: 1, imageFit:"cover" },
								]
							},
							{ key: "", title: "客服设置", type: "bar-title" },
							{ key:"online_service", title:"在线坐席客服功能", type:"switch", activeValue:true, inactiveValue:false, tips:"开启后，微信小程序用户点击联系客服时，会使用在线坐席客服功能（无需加微信好友，仅微信小程序支持）" },
							{ key: "", title: "登录设置", type: "bar-title" },
							{
								key: "login_mode", title: "默认登录模式", type: "radio", itemWidth: 80,
								direction: "column",
								columnMargin: 20,
								data: [
									{ value: 0, label: "用微信绑定的手机号登录（微信要收费，登录一次要0.03元）", tips: "注意: 微信自2023年8月26日起，手机号快速验证组件将需要付费使用。标准单价为：每次组件调用成功，收费0.03元，若不想支付这个费用，可以选择用微信登录，不用手机号登录" },
									{ value: 1, label: "手机号+密码（短信验证码收费）", tips: "用手机号+密码登录时免费" },
									{ value: 2, label: "用微信登录（免费）" },
								],
								tips: "友情提示：使用手机号登录一般是为了多端账号统一，如果用微信登录想多端统一，需要将公众号、微信小程序、APP绑定在同一个微信开放平台账号下"
							},
							{
								key: "weixin_login_type", title: "微信登录方式", type: "radio",
								direction: "column",
								columnMargin: 20,
								data: [
									{ value: "auto", label: "注册+登录", tips: "使用微信登录时，若账号不存在，则会自动注册并登录（即账号可以不绑定手机号）" },
									{ value: "login", label: "仅登录", tips: "使用微信登录时，若账号不存在，则不会自动注册（即必须先用手机号注册）" },
									{ value: "none", label: "关闭微信登录", tips: "不使用微信登录" },
								]
							}
						],
						// 表单验证规则
						rules: {

						},
						labelWidth: "160px",
						loading:false,
						successMsg:"设置成功",
						beforeAction:(formData)=>{
							// 可在此处修改 formData 后返回 formData，若在此处return false，则表单不触发提交请求。
							return {
								[settingKey]:formData
							};
						},

					}
				}
			}
		},
		// 监听 - 页面每次【加载时】执行(如：前进)
		onLoad(options = {}) {
			that = this;
			vk = that.vk;
			that.options = options;
			that.init(options);
		},
		// 监听 - 页面【首次渲染完成时】执行。注意如果渲染速度快，会在页面进入动画完成前触发
		onReady(){

		},
		// 监听 - 页面每次【显示时】执行(如：前进和返回) (页面每次出现在屏幕上都触发，包括从下级页面点返回露出当前页面)
		onShow() {

		},
		// 监听 - 页面每次【隐藏时】执行(如：返回)
		onHide() {

		},
		// 函数
		methods: {
			// 页面数据初始化函数
			init(options){
				that.$nextTick(() => {
					let mchInfo = vk.getVuex('$user.mchInfo');
					that.initData(mchInfo);
					that.page.complete = true;
					vk.callFunction({
						url: 'client/pub.getMchInfo',
						loading:{ that, name:"form1.props.loading"},
						data:{

						},
						success:(data) => {
							that.initData(data.mchInfo);
							vk.setVuex('$user.mchInfo',data.mchInfo);
						}
					});
				});
			},
			initData(mchInfo){
				vk.pubfn.objectAssign(this.form1.data, mchInfo[settingKey]);
			},
			// 页面跳转
			pageTo(path){
				vk.navigateTo(path);
			},
			// 页面返回
			pageBack(){
				const pages = getCurrentPages();
				if (pages.length>1 && pages[0].route !== that.$page.route) {
					vk.navigateBack();
				} else if(that.page.backPage) {
					vk.navigateTo(that.page.backPage);
				}
			},
			// 表单重置
			resetForm() {
				that.$refs.form1.resetForm();
			},
			// 表单提交
			submitForm(){
				that.$refs.form1.submitForm();
			},
			formSuccess(res){
				vk.setVuex("$user.mchInfo", res.data.mchInfo);
			}
		},
		// 监听器
		watch:{


		},
		// 计算属性
		computed:{

		}
	}
</script>
<style lang="scss" scoped>

</style>
